package com.hb.trade.api.im.chat.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hb.core.pojo.im.entity.ChatRecord;
import org.fzzn.core.model.websocket.SocketMessageEntity;

import java.util.List;

/**
 * <p>
 * 聊天记录表 服务类
 * </p>
 *
 * @author zhaojk
 * @since 2021-12-30
 */
public interface ChatRecordService extends IService<ChatRecord> {

    /**
     * 查询指定接收人的所有离线消息
     *
     * @param uname
     * @return
     */
    List<SocketMessageEntity> offlineRecord(String uname);

    /**
     * 记录消息
     * 该方法记录的聊天消息只为支持离线消息使用
     * 聊天记录的查询需要查询im_chat_record_content表
     * 该方法被调用时会操作im_chat_record_content表进行保存
     * 该方法未调用事务
     *
     * @param message      消息正文(layim接收的完整格式)
     * @param toUname      接收人
     * @param isOfflineMsg 是否离线消息
     */
    void record(SocketMessageEntity message, String toUname, boolean isOfflineMsg);
}
